개발자가 쌓는 지식은 작은 조각이 많습니다. 어떤 오류의 원인, 설정 하나의 이유, 지난번에 고른 라이브러리와 그 까닭 같은 것입니다. 폴더에 넣으면 한 곳에만 들어가지만, 이런 조각은 여러 주제에 동시에 걸칩니다. 링크는 그 문제를 풀어 줍니다. 조각 하나가 몇 곳에서든 불릴 수 있기 때문입니다.
1. 코드처럼 이름을 짓습니다
함수 이름을 고민하듯 페이지 이름을 고민하면 됩니다.
- 한 페이지에 한 가지. 함수와 같습니다.
- 같은 사실은 한 곳에만 적고 나머지는 링크합니다. 복사한 내용은 코드처럼 언젠가 갈라집니다.
- 이름이 바뀌면 이름 변경 기능을 씁니다. 옛 이름으로 들어오는 링크가 있는지 MacroBacklinks 로 확인할 수 있습니다.
2. 결정을 기록합니다
코드는 무엇을 했는지 알려 주지만 왜 그랬는지는 알려 주지 않습니다. 가장 쓸모 있는 페이지는 대개 «왜» 를 적은 페이지입니다.
= 캐시를 Redis 로 옮긴 이유 == 무엇이 문제였나 == 고려한 선택지와 기각한 이유 == 되돌리는 방법
기각한 선택지를 함께 적어 두면 다음 사람이 같은 고민을 반복하지 않습니다. 틀린 줄 알게 된 가설도 남길 가치가 있습니다.
3. 오류는 메시지 그대로 적습니다
오류 메시지를 페이지에 그대로 붙여 두면 나중에 같은 메시지로 검색해 찾을 수 있습니다. 원인과 해결을 짧게 쓰고 관련 기술 페이지를 링크합니다. 코드와 로그는 코드 블록에 넣습니다(InterpreterVim).
4. 찾는 방법을 여러 개 둡니다
- 링크 따라가기. 기억이 나는 낱말에서 출발합니다.
- 검색. 낱말을 알 때 씁니다. 단축키는 HotKey 에 있습니다.
- 제목 목록. TitleIndex 는 사이트의 모든 문서입니다.
- 그래프. 어떤 페이지 주변에 무엇이 있는지 볼 때 씁니다. PageMap 도 있습니다.
5. 저장소의 문서와 나누기
코드와 함께 바뀌어야 하는 설명은 저장소에, 코드와 함께 바뀌지 않는 조사와 판단은 위키에 두면 편합니다. 이 위키의 Dev 페이지들은 스크립트로 저장소와 동기화하는 예입니다.